1. Field of the Invention
The present invention is related to a method, system, and program for allocating storage units to a data set.
2. Description of the Related Art
In certain operating systems, such as the International Business Machines Corporation® (“IBM”) Enterprise Systems Architecture (ESA), as z/OS™, OS/390®, etc., a logical data set may be defined to include non-sequential tracks in storage.** In such operating systems, to allocate physical storage space to a data set, the file system, such as the Data Facility Storage Management Subsystem (DFSMS), makes a call to obtain additional physical space. In the DFSMS file system the call is made to a Direct Access Device Space Management System (DADSM). To allocate space to a data set, a Data Set Control Block (DSCB) may be created in a file allocation table, such as a Volume Table of Contents (VTOC). The VTOC is a file allocation table defining physical storage space associated with logical volumes, files, etc. The file system will create an extent identifying a number of contiguous tracks allocated to the data set defined by the DSCB. Multiple extents may be included within a DSCB, such that the tracks included in each extent are sequential, however tracks between extents may be non-sequential. **IBM, Z/OS and OS/390 are trademarks and/or registered trademarks of International Business Machines Corp.
In the prior art file systems, if all the available space in a data set is used, the file system will allocate additional space to the data set and generate and add a new extent to the DSCB entry in the file allocation table, such as a VTOC, for the data set to expand. The new extent will be allocated sufficient available sequential tracks to satisfy the request for additional space. If one new extent is not enough to satisfy the request for additional space, then the file system will locate additional ranges of sequential tracks to allocate to further extents, where the tracks between extents may be non-sequential although the tracks within one extent are sequential. If the DSCB is using the maximum number of allowed extents in the DSCB, then the file system will assign and create a new DSCB for the data set to include new extents to satisfy the request for additional space. A pointer to the new DSCB will be added to the pre-existing DSCB for the data set to allow for a chain of DSCBs to be associated with a data set.
There is a continued need in the art to provide improved techniques for optimizing the use of the data structures used to define data sets and other logical units.